Color switching for three-dimensional printing

ABSTRACT

By reversing the direction of a first build material fed into an extruder, the first build material can be wholly or partially evacuated from the extruder before a second material is introduced. This approach mitigates transition artifacts and permits faster, more complete changes from one build material to another.

RELATED APPLICATIONS

This application claims the benefit of U.S. App. No. 61/697,999 filed onSep. 7, 2012, the entire content of which is hereby incorporated byreference.

BACKGROUND

Three dimensional printers can create physical models from digitaldesigns. While current printers can use a variety of different colors ofbuild materials for greater flexibility in realizing aesthetic orfunctional objects, attempts to switch between different colors havegenerally provided unsatisfactory results in extrusion-based processes,typically resulting in transition artifacts such as streaking andprotracted variations in color. There remains a need for improved colorswitching techniques.

SUMMARY

By reversing the direction of a first build material fed into anextruder, the first build material can be wholly or partially evacuatedfrom the extruder before a second material is introduced. This approachmitigates transition artifacts and permits faster, more complete changesfrom one build material to another.

In one aspect, a method disclosed herein includes providing athree-dimensional printer having an extruder with a first input port, asecond input port, an extrusion port, and a chamber coupling the firstinput port, the second input port, and the extrusion port in fluidcommunication; driving a first build material through the first inputport until the first build material extrudes through the extrusion port;withdrawing the first build material through the first input port apredetermined amount; and driving a second build material through thesecond input port until the second build material extrudes through theextrusion port.

The method may include heating the chamber to liquefy at least one ofthe first build material and the second build material. The first buildmaterial may be a different color than the second build material. Thefirst build material may be of a different type than the second buildmaterial. The first build material may be a plastic. The first buildmaterial may be one or more of ABS, PLA, and PCL.

The predetermined amount may be at least enough to move a materialtransition region between the first build material and the second buildmaterial out of the chamber. The predetermined amount may include anamount of the first build material displacing at least one half thevolume of the chamber. The predetermined amount may include an amount ofthe first build material displacing at least the volume of the chamber.

The method may include withdrawing the first build material concurrentlywith driving the second build material. The method may includewithdrawing the second build material through the second input port by asecond predetermined amount and driving the first build material throughthe first input port until the first build material extrudes through theextrusion port.

In another aspect, there is disclosed herein a computer program productfor switching filaments in a three-dimensional printer, the computerprogram product comprising non-transitory computer executable codeembodied in a memory of a three-dimensional printer having an extruderwith a first input port, a second input port, an extrusion port, and achamber coupling the first input port, the second input port, and theextrusion port in fluid communication, wherein the computer executablecode, when executing on a controller of the three-dimensional printer,performs the steps of: driving a first build material through the firstinput port until the first build material extrudes through the extrusionport; withdrawing the first build material through the first input porta predetermined amount; and driving a second build material through thesecond input port until the second build material extrudes through theextrusion port.

In another aspect, there is disclosed herein a three-dimensional printercomprising an extruder having a first input port, a second input port,an extrusion port, and a chamber coupling the first input port, thesecond input port, and the extrusion port in fluid communication; and acontroller configured to switch the extrusion port from a first buildmaterial passing through the first input port, the chamber, and theextrusion port to a second build material supplied at the second inputport by performing the steps of withdrawing the first build materialthrough the first input port a predetermined amount, and driving thesecond build material through the second input port until the secondbuild material extrudes through the extrusion port.

The printer may include a heating element coupled to the controller andconfigured to heat the chamber to liquefy at least one of the firstbuild material and the second build material. The first build materialmay be a different color than the second build material. Thepredetermined amount may be at least enough to move a materialtransition region between the first build material and the second buildmaterial out of the chamber. The predetermined amount may include anamount of the first build material displacing at least one half a volumeof the chamber. The predetermined amount may include an amount of thefirst build material displacing at least a volume of the chamber. Thecontroller may be further configured to withdraw the first buildmaterial concurrently with driving the second build material. Thecontroller may be further configured to switch from the second buildmaterial to the first build material by withdrawing the second buildmaterial through the second input port by a second predetermined amountand driving the first build material through the first input port untilthe first build material extrudes through the extrusion port.

BRIEF DESCRIPTION OF THE FIGURES

The invention and the following detailed description of certainembodiments thereof may be understood by reference to the followingfigures:

FIG. 1 is a block diagram of a three-dimensional printer.

FIG. 2 shows a three-dimensional printer with a camera.

FIG. 3A shows a cross section of an extruder for a three-dimensionalprinter.

FIG. 3B shows a top view of the extruder of FIG. 3A.

FIG. 4 shows an extruder for use in a three-dimensional printer.

FIG. 5 shows an extruder for use in a three-dimensional printer.

FIG. 6 shows an extruder for use in a three-dimensional printer.

FIG. 7 shows an extruder for use in a three-dimensional printer.

FIG. 8 shows an extruder for use in a three-dimensional printer.

FIG. 9 shows an extruder for use in a three-dimensional printer.

FIG. 10 shows an extruder for use in a three-dimensional printer.

FIG. 11 is a flowchart of a process for fabricating an object.

FIG. 12 is a flowchart of a process for modifying an object model.

FIG. 13 is a flowchart of a process for providing a design tool.

FIG. 14 is a flowchart of a process for switching build materials in anextruder.

DETAILED DESCRIPTION

All documents mentioned herein are hereby incorporated in their entiretyby reference. References to items in the singular should be understoodto include items in the plural, and vice versa, unless explicitly statedotherwise or clear from the text. Grammatical conjunctions are intendedto express any and all disjunctive and conjunctive combinations ofconjoined clauses, sentences, words, and the like, unless otherwisestated or clear from the context. Thus the term “or” should generally beunderstood to mean “and/or” and so forth.

The following description emphasizes three-dimensional printers usingfused deposition modeling or similar techniques where a bead of materialis extruded in a layered series of two dimensional patterns as “roads,”“paths” or the like to form a three-dimensional object from a digitalmodel. It will be understood, however, that numerous additivefabrication techniques are known in the art including without limitationmultijet printing, stereolithography, Digital Light Processor (“DLP”)three-dimensional printing, selective laser sintering, and so forth.Such techniques may benefit from the systems and methods describedbelow, and all such printing technologies are intended to fall withinthe scope of this disclosure, and within the scope of terms such as“printer”, “three-dimensional printer”, “fabrication system”, and soforth, unless a more specific meaning is explicitly provided orotherwise clear from the context. It should further be noted that whilethe following description emphasizes changes in color, the methods andsystems described below may be suitably employed where any dual-inputextruder changes between any two different build materials.

FIG. 1 is a block diagram of a three-dimensional printer. In general,the printer 100 may include a build platform 102, an extruder 106, anx-y-z positioning assembly 108, and a controller 110 that cooperate tofabricate an object 112 within a working volume 114 of the printer 100.

The build platform 102 may include a surface 116 that is rigid andsubstantially planar. The surface 116 may provide a fixed, dimensionallyand positionally stable platform on which to build the object 112. Thebuild platform 102 may include a thermal element 130 that controls thetemperature of the build platform 102 through one or more active devices132, such as resistive elements that convert electrical current intoheat, Peltier effect devices that can create a heating or coolingeffect, or any other thermoelectric heating and/or cooling devices. Thethermal element 130 may be coupled in a communicating relationship withthe controller 110 in order for the controller 110 to controllablyimpart heat to or remove heat from the surface 116 of the build platform102.

The extruder 106 may include a cavity 122 in an interior thereof toreceive a build material. The build material may, for example, includeacrylonitrile butadiene styrene (“ABS”), high-density polyethylene(“HDPL”), polylactic acid (“PLA”), or any other suitable plastic,thermoplastic, or other material that can usefully be extruded to form athree-dimensional object. The extruder 106 may include an extrusion tip124 or other opening that includes an exit port with a circular, oval,slotted or other cross-sectional profile that extrudes build material ina desired cross-sectional shape.

The extruder 106 may include a heater 126 (also referred to as a heatingelement) to melt thermoplastic or other meltable build materials withinthe cavity 122 for extrusion through an extrusion tip 124 in liquidform. While illustrated in block form, it will be understood that theheater 126 may include, e.g., coils of resistive wire wrapped about theextruder 106, one or more heating blocks with resistive elements to heatthe extruder 106 with applied current, an inductive heater, or any otherarrangement of heating elements suitable for creating heat within thecavity 122 sufficient to melt the build material for extrusion. Theextruder 106 may also or instead include a motor 128 or the like to pushthe build material into the cavity 122 and/or through the extrusion tip124.

In general operation (and by way of example rather than limitation), abuild material such as ABS plastic in filament form may be fed into thecavity 122 from a spool or the like by the motor 128 (which may includetwo or more filament drive motors, e.g., where multiple filaments areused concurrently), melted by the heater 126, and extruded from theextrusion tip 124. By controlling a rate of the motor 128, thetemperature of the heater 126, and/or other process parameters, thebuild material may be extruded at a controlled volumetric rate. It willbe understood that a variety of techniques may also or instead beemployed to deliver build material at a controlled volumetric rate,which may depend upon the type of build material, the volumetric ratedesired, and any other factors. All such techniques that might besuitably adapted to delivery of build material for fabrication of athree-dimensional object are intended to fall within the scope of thisdisclosure.

The x-y-z positioning assembly 108 may generally be adapted tothree-dimensionally position the extruder 106 and the extrusion tip 124within the working volume 114. Thus by controlling the volumetric rateof delivery for the build material and the x, y, z position of theextrusion tip 124, the object 112 may be fabricated in three dimensionsby depositing successive layers of material in two-dimensional patternsderived, for example, from cross-sections of a computer model or othercomputerized representation of the object 112. A variety of arrangementsand techniques are known in the art to achieve controlled linearmovement along one or more axes. The x-y-z positioning assembly 108 may,for example, include a number of stepper motors 109 to independentlycontrol a position of the extruder 106 within the working volume alongeach of an x-axis, a y-axis, and a z-axis. More generally, the x-y-zpositioning assembly 108 may include without limitation variouscombinations of stepper motors, encoded DC motors, gears, belts,pulleys, worm gears, threads, and so forth. For example, in one aspectthe build platform 102 may be coupled to one or more threaded rods by athreaded nut so that the threaded rods can be rotated to provide z-axispositioning of the build platform 102 relative to the extruder 106. Thisarrangement may advantageously simplify design and improve accuracy bypermitting an x-y positioning mechanism for the extruder 106 to be fixedrelative to a build volume. Any such arrangement suitable forcontrollably positioning the extruder 106 within the working volume 114may be adapted to use with the printer 100 described herein.

In general, this may include moving the extruder 106, or moving thebuild platform 102, or some combination of these. Thus it will beappreciated that any reference to moving an extruder relative to a buildplatform, working volume, or object, is intended to include movement ofthe extruder or movement of the build platform, or both, unless a morespecific meaning is explicitly provided or otherwise clear from thecontext. Still more generally, while an x, y, z coordinate system servesas a convenient basis for positioning within three dimensions, any othercoordinate system or combination of coordinate systems may also orinstead be employed, such as a positional controller and assembly thatoperates according to cylindrical or spherical coordinates.

The controller 110 may be electrically or otherwise coupled in acommunicating relationship with the build platform 102, the x-y-zpositioning assembly 108, and the other various components of theprinter 100. In general, the controller 110 is operable to control thecomponents of the printer 100, such as the build platform 102, the x-y-zpositioning assembly 108, and any other components of the printer 100described herein to fabricate the object 112 from the build material.The controller 110 may include any combination of software and/orprocessing circuitry suitable for controlling the various components ofthe printer 100 described herein including without limitationmicroprocessors, microcontrollers, application-specific integratedcircuits, programmable gate arrays, and any other digital and/or analogcomponents, as well as combinations of the foregoing, along with inputsand outputs for transceiving control signals, drive signals, powersignals, sensor signals, and so forth. In one aspect, this may includecircuitry directly and physically associated with the printer 100 suchas an on-board processor. In another aspect, this may be a processorassociated with a personal computer or other computing device coupled tothe printer 100, e.g., through a wired or wireless connection.Similarly, various functions described herein may be allocated betweenan on-board processor for the printer 100 and a separate computer. Allsuch computing devices and environments are intended to fall within themeaning of the term “controller” or “processor” as used herein, unless adifferent meaning is explicitly provided or otherwise clear from thecontext.

A variety of additional sensors and other components may be usefullyincorporated into the printer 100 described above. These othercomponents are generically depicted as other hardware 134 in FIG. 1, forwhich the positioning and mechanical/electrical interconnections withother elements of the printer 100 will be readily understood andappreciated by one of ordinary skill in the art. The other hardware 134may include a temperature sensor positioned to sense a temperature ofthe surface of the build platform 102, the extruder 126, or any othersystem components. This may, for example, include a thermistor or thelike embedded within or attached below the surface of the build platform102. This may also or instead include an infrared detector or the likedirected at the surface 116 of the build platform 102.

In another aspect, the other hardware 134 may include a sensor to detecta presence of the object 112 at a predetermined location. This mayinclude an optical detector arranged in a beam-breaking configuration tosense the presence of the object 112 at a predetermined location. Thismay also or instead include an imaging device and image processingcircuitry to capture an image of the working volume and to analyze theimage to evaluate a position of the object 112. This sensor may be usedfor example to ensure that the object 112 is removed from the buildplatform 102 prior to beginning a new build on the working surface 116.Thus the sensor may be used to determine whether an object is presentthat should not be, or to detect when an object is absent. The feedbackfrom this sensor may be used by the controller 110 to issue processinginterrupts or otherwise control operation of the printer 100.

The other hardware 134 may also or instead include a heating element(instead of or in addition to the thermal element 130) to heat theworking volume such as a radiant heater or forced hot air heater tomaintain the object 112 at a fixed, elevated temperature throughout abuild, or the other hardware 134 may include a cooling element to coolthe working volume.

FIG. 2 shows a three-dimensional printer. The printer 200 may include acamera 202 and a processor 204. The printer 200 may be configured foraugmented operation using two-dimensional data acquired from the camera202.

The printer 200 may, for example, be any of the three-dimensionalprinters described above.

The camera 202 may be any digital still camera, video camera, or otherimage sensor(s) positioned to capture images of the printer 200, or theworking volume of the printer 200.

The processor 204, which may be an internal processor of the printer200, an additional processor provided for augmented operation ascontemplated herein, a processor of a desktop computer or the likelocally coupled to the printer 200, a server or other processor coupledto the printer 200 through a data network, or any other processor orprocessing circuitry. In general, the processor 204 may be configured tocontrol operation of the printer 200 to fabricate an object from a buildmaterial. The processor 204 may be further configured to adjust aparameter of the printer 200 based upon an analysis of the object in theimage. It should be appreciated that the processor 204 may include anumber of different processors cooperating to perform the stepsdescribed herein, such as where an internal processor of the printer 200controls operation of the printer 200 while a connected processor of adesktop computer performs image processing used to control printparameters.

A variety of parameters may be usefully adjusted during a fabricationprocess. For example, the parameter may be a temperature of the workingvolume. This temperature may be increased or decreased based upon, e.g.,an analysis of road dimensions (e.g. height and width of line ofdeposited build material), or the temperature may be adjusted accordingto a dimensional stability of a partially fabricated object. Thus, wheresagging or other variations from an intended shape are detected, thetemperature may be decreased. Similarly, where cooling-induced warpingor separation of layers is detected, the temperature may be increased.The working volume temperature may be controlled using a variety oftechniques such as with active heating elements and/or use of heated orcooled air circulating through the working volume.

Another parameter that may be usefully controlled according to thecamera image is the temperature of a build platform in the workingvolume. For example, the camera 202 may capture an image of a raft orother base layer for a fabrication, or a first layer of the fabricatedobject, and may identify defects such as improper spacing betweenadjacent lines of build material or separation of the initial layer fromthe build platform. The temperature of the build platform may in suchcases be heated in order to alleviate cooling-induced warping of thefabricated object at the object-platform interface.

Another parameter that may be usefully controlled according to ananalysis of the camera image is the extrusion temperature of anextruder. By heating or cooling the extruder, the viscosity of a buildmaterial may be adjusted in order to achieve a desired materialdeposition rate and shape, as well as appropriate adhesion to underlyinglayers of build material. Where roads of material deviate from apredetermined cross-sectional shape, or otherwise contain visibledefects, the extrusion temperature of the extruder may be adjusted tocompensate for such defects.

Similarly, the parameter may be an extrusion rate of a build materialfrom the extruder. By controlling a drive motor or other hardware thatforces build material through the extruder, the volumetric rate ofmaterial delivery may be controlled, such as to reduce gaps betweenadjacent lines of build material, or to reduce bulges due to excessbuild material.

In another aspect, the parameter may be a viscosity of build material,which may be controlled, e.g., by controlling the extruder temperatureor any other controllable element that can transfer heat to and frombuild material as it passes through the extruder. It will be understoodthat temperature control is one technique for controlling viscosity, butother techniques are known and may be suitable employed, such as byselectively delivering a solvent or the like into the path of the buildmaterial in order to control thermal characteristics of the buildmaterial.

Another parameter that may be usefully controlled is a movement speed ofthe extruder during an extrusion. By changing the rate of travel of theextruder, other properties of the build (e.g., road thickness, spatialrate of material delivery, and so forth) may be controlled in responseto images captured by the camera 202 and analyzed by the processor 204.

In another aspect, the parameter may be a layer height. By controllingthe z-positioning hardware of the printer 200, the layer height may bedynamically adjusted during a build.

The printer may include a memory 208, such as a local memory or a remotestorage device that stores a log of data for an object being fabricatedincluding without limitation a value or one or more of the parametersdescribed above, or any other data relating to a print. The memory 208may also or instead store a log of data aggregated from a number offabrications of a particular object, which may include data from theprinter 200 and/or data from a number of other three-dimensionalprinters.

A second processor 210, such as a processor on a server or other remoteprocessing resource, may be configured to analyze the log of data in thememory 208 to identify a feature of the object that is difficult toprint. For example, where a corner, overhang, or the like consistentlyfails, this may be identified by analysis of the log of data,particularly where such failures can be automatically detected basedupon analysis of images from the camera 202. Such failures may be loggedin any suitable manner including quantitatively as data characterizingthe failure (based upon image analysis), metadata (e.g., percentcompletion, build parameters, and so forth) and/or a simple failureflag, which may be accompanied by an image of the failed build. In thismanner, the second processor 210 can identify features that should beavoided in printable models, and/or objects that are generally difficultor impossible to print. The second processor 210 may also or instead beconfigured to analyze the results of variations in one or more of theparameters described above. It will be understood that, while the secondprocessor 210 may be usefully located on a remote processing resourcesuch as a server, the second processor 210 may also be the same as theprocessor 204, with logging and related analysis performed locally bythe printer 200 or a locally coupled computer.

The printer 200 may optionally include a display 212 configured todisplay a view of the working volume. The display 212, which may obtainimages of the working volume from the camera 202 or any other suitableimaging hardware, may be configured, e.g., by the processor 204, tosuperimpose thermal data onto the view of the working volume. This may,for example, include thermistor data or data from other temperaturesensors or similar instrumentation on the printer 200. For example, theprinter 200 may include sensors for measuring a temperature of at leastone of the extruder, the object, the build material, the working volume,an ambient temperature outside the working volume, and a build platformwithin the working volume. These and any similar instrumentation may beused to obtain thermal data correlated to specific or general regionswithin and without the printer 200. Where the camera 202 includes aninfrared camera, the thermal data may also or instead include aninfrared image, or a thermal image derived from such an infrared image.

The display 212 may serve other useful purposes. For example, the viewfrom the camera 202 may be presented in the display. The processor 204may be configured to render an image of a three-dimensional model usedto fabricate an object from the pose of the camera 202. If the camera202 is a fixed camera then the pose may be a predetermined posecorresponding to the camera position and orientation. If the camera 202is a moving camera, the processor 204 may be further programmed todetermine a pose of the camera 202 based upon, e.g., fiducials or known,visually identifiable objects within the working volume such as cornersof a build platform or a tool head, or to determine the pose using datafrom sensors coupled to the camera and/or from any actuators used tomove the camera. The rendered image of the three-dimensional modelrendered from this pose may be superimposed on the view of the workingvolume within the display 212. In this manner, the printer 200 mayprovide a preview of an object based upon a digital three-dimensionalmodel, which preview may be rendered within the display 212 for theprinter, or a user interface of the display, with the as-fabricatedsize, orientation, and so forth. In order to enhance the preview, otherfeatures such as build material color may also be rendered using texturemapping or the like for the rendered image. This may assist a user inselecting build material, scaling, and so forth for an object that is tobe fabricated from a digital model.

In another aspect, the printer 200 may optionally include a sensor 214for capturing three-dimensional data from the object. A variety ofsuitable sensors are known in the art, such as a laser sensor, anacoustical range finding sensor, an x-ray sensor, and a millimeter waveradar system, any of which may be adapted alone or in variouscombinations to capture three-dimensional data. The display 212 may beconfigured to superimpose such three-dimensional data onto the displayof the object within the working volume. In this manner, the processor204 may detect one or more dimensional inaccuracies in the object, suchas by comparison of three-dimensional measurements to a digital modelused to fabricate the object. These may be presented as dimensionalannotations within the display 212, or as color-coded regions (e.g.,yellow for small deviations, red for large deviations, or any othersuitable color scheme) superimposed on the display of the object. Theprocessor 204 may be further configured to show summary data in thedisplay 212 concerning any dimensional inaccuracies detected within theobject.

The sensor 214 may more generally include one or more spatial sensorsconfigured to capture data from the object placed within the workingvolume. The second processor 210 (which may be the processor 204) mayconvert this data into a digital model of the object, and the processor204 may be configured to operate the printer 200 to fabricate ageometrically related object within the working volume based upon thedigital model. In this manner, the printer 200 may be used for directreplication of objects simply by placing an object into the workingvolume, performing a scan to obtain the digital model, removing theobject from the working volume, and then fabricating a replica of theobject based upon the digital model. More generally, any geometricallyrelated shape may be usefully fabricated using similar techniques.

For example, the geometrically related object may be a three-dimensionalcopy of the object, which may be a scaled copy, and/or which may berepeated as many times as desired in a single build subject to spatiallimitations of the working volume and printer 200. In another aspect,the geometrically related object may include material to enclose aportion of the object. In this manner, a container or other enclosurefor the object may be fabricated. In another aspect, the geometricallyrelated object may include a mating surface to the object, e.g., so thatthe fabricated object can be coupled to the original source object. Thismay be particularly useful for fabrication of snap on parts such asaesthetic or functional accessories, or any other objects that might beusefully physically mated to other objects. Similarly, a repair piecefor a broken object may be fabricated with a surface matched to anexposed surface of the broken object, which surface may be glued orotherwise affixed to the broken object to affect a repair.

The processor 204 may obtain the digital model using, e.g., shape frommotion or any other processing technique based upon a sequence oftwo-dimensional images of an object. The multiple images may beobtained, for example, from a plurality of cameras positioned to providecoverage of different surfaces of the object within the working volume.In another aspect, the one or more spatial sensors may include a singlecamera configured to navigate around the working volume, e.g., on atrack or with an articulating arm. Navigating around the working volumemay more generally include circumnavigating the working volume, movingaround and/or within the working volume, and/or changing direction toachieve various poses from a single position. The one or more spatialsensors may also or instead include articulating mirrors that can becontrolled to obtain multiple views of an object from a single camera.

In another aspect, the one or more spatial sensors 214 may includecontrollable lighting that can be used, e.g., to obtain differentshadowed views of an object that can be interpreted to obtainthree-dimensional surface data. The processor 204 (or the secondprocessor 210) may also provide a computer automated design environmentto view and/or modify the digital model so that changes, adjustments,additions, and so forth may be made prior to fabrication.

In another aspect, a tool head 220 of the printer may be usefullysupplemented with a camera 222. The tool head 220 may include any tool,such as an extruder or the like, to fabricate an object in the workingvolume of the printer. In general, the tool head 220 may be spatiallycontrolled by an x-y-z positioning assembly of the printer, and thecamera 222 may be affixed to and moving with the tool head 220. Thecamera 222 may be directed toward the working volume, such as downwardtoward a build platform, and may provide a useful bird's eye view of anobject on the build platform. The processor 204 may be configured toreceive an image from the camera and to provide diagnostic informationfor operation of the three-dimensional printer based upon an analysis ofthe image.

For example, the diagnostic information may include a determination of aposition of the tool head within the working volume. The diagnosticinformation may also or instead include a determination of whether thethree-dimensional printer has effected a color change in build material.The diagnostic information may also or instead include a determinationof whether the three-dimensional printer has effected a change from afirst build material to a second build material. The diagnosticinformation may also or instead include an evaluation of whether a buildmaterial is extruding correctly from the tool head. The diagnosticinformation may also or instead include an evaluation of whether aninfill for the object is being fabricated correctly. In one aspect, thediagnostic information may include the image from the camera, which maybe independently useful as a diagnostic tool.

Where the processor 204 is capable of dynamically modifying toolinstructions, the processor 204 may be configured to dynamicallygenerate a pattern to infill the object based, for example, on anoutline image of the object or previous infilling patterns identified inthe image from the camera.

A variety of techniques are described below for providing an extrusionwith a user-controlled color. In general, the various techniquesdescribed below address the difficulties of obtaining a uniform mixtureof relatively high-viscosity build materials typically used in anextrusion-based process.

FIG. 3A shows a cross section of an extruder for a three-dimensionalprinter. An extruder 150 such as any of the extruders described abovemay be adapted for color switching or mixing by providing two entryports, a first input port 152 and a second input port 154 that jointhrough a chamber 156 that provides a shared mixing region coupled to anextrusion port 158 for a single output. One or more heating elements maybe included around the chamber 156 to provide a melt zone that canliquefy build material supplied to the chamber 156 in solid form throughthe two entry ports. A variety of arrows are included in the figureillustrating points in the build material flow path where color might beusefully added to achieve color mixing. It will be understood that whiletwo entry ports are shown, any number of ports, and any correspondingnumber of colored build materials may be used. For example, to provideoutput over a full color spectrum, three or more entry ports may beused, e.g., for red, green, and blue build materials, or cyan, magenta,yellow, white, and black build materials.

In one aspect the extruder 150 may include one or more baffles 160within the chamber 156 to improve mixing. It will be appreciated thatthe term “baffle” as used herein is intended to describe anyprotuberance, cross-member, finger, or other physical feature within aflow path from the entry ports to the extrusion port that diverts orchanges flow in a manner that encourages mixing of two different buildmaterials. The chamber 156 may advantageously be manufactured as atwo-part assembly to facilitate the creation (e.g., by machining or thelike) or insertion (e.g., of cross-members) of any suitable featureswithin the interior. In another aspect, the baffles may be usefullyomitted, e.g., where the printer is intended to be optimized for colorswitching (e.g., changing from one build material to another), asdistinguished from color mixing (e.g., where two build materials areconcurrently fed into the chamber 156 for mixing).

Thus in one aspect there is disclosed herein an extruder for use in anadditive manufacturing system, the extruder comprising: a first inputport to receive a first filament of a first build material having afirst color; a second input port to receive a second filament of asecond build material having a second color; an extrusion port; and achamber coupled in fluid communication with the first port, the secondport, and the extrusion port, the chamber including one or more bafflesto mix the first build material with the second build material as itpasses in a liquid state to the extrusion port. A heater may be includedin the extruder to melt at least one of the first filament and thesecond filament prior to entering the chamber, or as at least one of thefirst filament and the second filament enter the chamber. Moregenerally, a melt zone for the build material within the extruder mayusefully begin anywhere prior to or at the point where two differentbuild materials physically contact one another. At the same time, themelt zone may usefully begin as close to the chamber as practical sothat the driving force of solid, unmelted build material can be mosteffectively transferred into the chamber. The interior chamber mayadvantageously have a small volume relative to the source material(s)and extruded material in order to reduce latency in a change from onecolor to another color at the extrusion port. For example, the smallvolume may be less than or equal to the diameter of the inputfilament(s) times the cross-sectional area of the filament, or less thantwo times the diameter times the cross-sectional area of the filament.

A pair of motors (such as filament drive motors) may be operable by acontroller to independently drive the first filament into the first portand the second filament into the second port. The controller may controla feed rate of first filament and second filament to obtain apredetermined mixture of the filaments, or a predetermined color at theextrusion port. The predetermined color may be a user-selected colorthat is converted by the controller into drive speeds for the two motorsbased upon input materials having known color properties. In anotheraspect, a color sensor 162 such as a camera may be provided to detect acolor of build material exiting the extrusion port, and the controllermay adjust the feed rates to obtain the predetermined color. In anotheraspect, a color source such as a dye source may be provided so thatcolor can be added to the first or the second filament as it feedsthrough the extruder. This may include a color source 164 that adds acolor to an exterior of the filament in solid form (such as by paintingor otherwise applying dye to the outside of the filament) and/or a colorsource 166 that injects a liquid into the filament as it liquefies orafter it liquefies. The color source may add color under control of thecontroller to obtain a predetermined color for material exiting theextrusion port 158. In another aspect, a color source 168 may bepositioned to apply a paint or the like as the build material exits theextrusion port 158, so that the extruded material is painted orotherwise colored immediately prior to deposition on a build.

FIG. 3B shows a top view of the extruder of FIG. 3A. The input axes forthe two filaments into the cavity establish the direction at which solidmaterial is driven into the cavity. These axes may be skewed relative toone another in order to encourage mixing of the materials in theirliquid state. In this manner, for example, a rotational force may beimparted to two or more build materials as they are pushed togetherwithin the cavity 156 so that they tend to move in a vortex rather thanlinearly from entry to exit.

Thus in one aspect there is disclosed herein an extruder 170 for use inan additive manufacturing system, the extruder comprising: a first inputport 172 to receive a first filament of a first build material having afirst color; a second input port 174 to receive a second filament of asecond build material having a second color; an extrusion port 176; anda chamber 178 coupled in fluid communication with the first port 172,the second input port 174, and the extrusion port 176, wherein the firstinput port 172 receives the first filament into the chamber on a firstaxis 180, and wherein the second input port 174 receives the secondfilament into the chamber 178 on a second axis 182 that forms a skewline to the first axis where it enters the chamber. It will beappreciated that, while depicted in FIG. 3B as within the plane of thedrawing, the axes 180, 182 would also be generally oriented downward inan extrusion path, i.e., from the input ports 172, 174 on a top of theextruder 170 downward toward the extrusion port 176 on a bottom of theextruder as generally depicted in FIG. 3A. In this manner, sufficientforce toward the extrusion port 176 can be generated to drive viscousbuild materials through the chamber 178 and out of the extrusion port176. Features such as the distance offset of the two axes from thecenter and the angle offset of the two axes from vertical may be variedaccording to the viscosity of the build materials, the amount of mixingdesired, the force required to extrude melted material through theoutput port and any other parameters, with suitable adjustments beingwithin the ordinary skill in the art.

The baffles described above may include spiral ridges 190 or othertorsion inducing elements 192 along interior walls of the cavity toswirl build materials down toward the extrusion port. A variety ofgeometric configurations may be used for such spiral ridges, includingvarious pitches (distance from one turn to the next) and various heights(amount that ridge protrudes into build cavity).

Thus in one aspect there is disclosed herein an extruder for use in anadditive manufacturing system, the extruder comprising: a first inputport 172 to receive a first filament of a first build material having afirst color; a second input port 174 to receive a second filament of asecond build material having a second color; an extrusion port 176; anda chamber 178 coupled in fluid communication with the first port 172,the second input port 174, and the extrusion port 176, the chamber 178having an interior wall with a tapered (e.g., from a wider top of thechamber to a narrower bottom of the chamber), torsion inducing element192 to mix the first build material with the second build material whilepassing in a liquid state to the extrusion port. In another aspect, thefirst and second build materials may be switched during extrusioninstead of mixed.

In one aspect mentioned above, the extruder may provide color control byapplying paint or other dye(s) directly to build material as it exits anextrusion port. More generally, a paint tool may be included in a toolhead with the extruder, and paint may be applied after material isdeposited on an object that is being fabricated. In this manner, small,controlled doses of paint may be applied to a road of deposited materialto impress a desired color or combination of colors onto the fabricatedobject.

Thus in one aspect, there is disclosed herein an additive fabricationsystem comprising: an extruder configured to extrude a build material ata controlled volumetric rate in a liquid state; an x-y-z positioningsystem configured to controllably position the extruder within a buildvolume; a paint head (e.g., the color source 168 in FIG. 1A) having acontrollable pose, the paint head configured to apply a controlled colorof paint to a surface through a nozzle; and a processor coupled in acommunicating relationship with the extruder and the x-y-z positioningsystem and configured to fabricate a three-dimensional model in thebuild volume from the build material of the extruder, the processorfurther configured to position and orient the nozzle of the paint headtoward a predetermined location on an exterior surface of the objectduring fabrication of the exterior surface and to apply paint having acomputer controlled color at the predetermined location. Moreparticularly, the predetermined location may be a location immediatelybehind the extruder on a current deposition path. That is, where theextruder moves in an x-y direction, the paint head may be directed to animmediately trailing location, which direction may change as the path ofthe extruder changes.

In another aspect, an injector such as the color source 166 may beprovided to inject dyes or other coloring agents directly into theinterior chamber of the extruder.

Thus in one aspect there is disclosed herein a system for additivefabrication with color control, the system comprising: a filament of abuild material; a supply of one or more additives; an extruder having aport to receive the filament, an extrusion port, and a chamber couplingthe port in fluid communication with the extrusion port; and an injectorcoupled to the chamber, the injector configured to inject a controllableamount of the one or more additives from the supply into the cavity.

The system may include a motor that supplies mechanical force to drivethe filament into the port. The system may include a heater thatprovides thermal energy to melt the filament in the chamber. The one ormore additives may include one or more dyes such as a non-solubleencapsulated pigment. Thus, for example, dye may be encapsulated in anopaque capsule that can be ruptured under controlled circumstances toimpart a resulting color according to, e.g., temperature, pressure,ultrasonic stimulus, or other chemical, mechanical, or optical stimuli.The system may include a controller to select the controllable amount ofthe one or more dyes to obtain a build material having a predeterminedcolor from the extrusion port. The cavity may include one or morebaffles that mix the build material with the one or more dyes prior toextrusion as generally described above.

In another aspect, feedback may be used to obtain a target color. Forexample, the color sensor 162 may be used to measure an output colorfrom the extrusion port 176, which measurement may be provided as asignal to the controller that can responsively control various colorsources to change the output color.

Thus in one aspect there is disclosed herein an additive fabricationsystem comprising: a build material provided as a filament; an extruderhaving a port to receive the filament, an extrusion port, and a chamberthat couples the port in fluid communication with the extrusion port; amotor configured to provide a force to drive the filament into the port;a heater positioned to melt the build material within the chamber; apigment source adapted to deliver a pigment to the build material; asensor positioned to detect a color of the build material exiting theextrusion port; and a controller programmed to receive data from thesensor and to control operation of the motor, the heater, and thepigment source to achieve a predetermined color for the build materialexiting the extrusion port.

The predetermined color may be a user-defined color, such as by directlyspecifying color as an input to tool path creation, or as a toolinstruction within tool instruction for a print. The predetermined colormay also or instead be obtained from a three-dimensional model such as asource CAD model. The sensor may be a video camera. The pigment source,which may be any of the color sources described above, may deliverpigment to melted build material within the cavity, or the pigmentsource may apply pigment to the filament before the filament enters thechamber. The chamber may include one or more baffles to mix the pigmentwith the build material.

It will be understood that the methods and systems described above maybe generalized to provide multi-material mixing for properties otherthan color, such as by adding and/or mixing materials for desiredthermal properties, mechanical properties, electrical properties,optical properties, and so forth.

Additionally, a variety of active mixing techniques may be usefullyemployed. Characteristics of viscous mixing, and techniques for same,are well known in the art and may be employed in a mixing system ascontemplated herein. For example, mixing of highly viscous fluids isdescribed in Handbook of Industrial Mixing: Science and Practice, pp.987-1025 (Ch. 16 (Mixing of Highly Viscous Fluids, Polymers, andPastes), Todd, D. B. (2004), the entire content of which is herebyincorporated by reference. A variety of mixing tools such as a helicalblade mixer, a change can mixer, a double arm kneading mixer, acontinuous mixer, a single-screw extruder, a Banbury mixer, a plowmixer, a ribbon mixer, a cone and screw mixer, twin-screw extruders(e.g., tangential counter-rotating, intermeshing counter-rotating,intermeshing co-rotating), a Farrel continuous mixer, may be used aloneor in combination to facilitate mixing of highly viscous materials.Similarly, a number of mixing enhancers are known in the art that mightbe usefully employed to improve mixing such as parallel interruptedmixing flights, a ring barrier, mixing pins, a Maddock mixing section,hexalobal mixing screws, kneading paddles, and so forth. Any of theforegoing might be usefully adapted to provide active mixing of viscousbuild materials within a cavity.

FIG. 4 shows an extruder for use in a three-dimensional printer. Theextruder 400 may include two or more input ports 408 (e.g., a firstinput port and a second input port), an extrusion port 410, a chamber412 which is in fluid communication with the input ports 408, andextrusion port 410. Each input port 408 can receive a filament of buildmaterial 414 that is driven by a motor 416 towards the chamber 412. Theextruder 400 may include (or may be in thermal contact with) one or moreheating elements that are coupled to the controller 420 and that areoperable to create a melt zone 424, where build material 414 is likelyto begin melting. In general, the heating elements may be used to heatthe chamber to liquefy at least one of the first build material and thesecond build material within the melt zone of the chamber as describedabove with reference to FIG. 1.

The melt zone 424 may be coextensive with the chamber 412, or the meltzone may extend beyond the chamber towards the input ports 408, so thatbuild material 414 is likely to be melted before it enters the chamber412, or so that the build material 414 moves closer to a liquificationtemperature as it enters the melt zone or chamber.

Each motor 416 may be individually controllable through the controller420 to adjust the rate at which it operates. By feeding build material414 of different colors through the input ports 408 into the chamber 412at different rates, the resultant build material may take on a range ofcolors. For example, using yellow and blue build material in equalproportions, a green build material can be produced, and the hue may bevaried by feeding yellow at a greater or lesser volumetric rate into thecavity 412.

The controller may be configured to switch the extruded material at theextrusion port 410 from a first build material 414 supplied through thefirst input port 408 (and passing through the chamber 412 and theextrusion port 410) to a second build material 414 supplied at thesecond input port 408. This may be efficiently performed, for example,by withdrawing the first build material 414 through the first input port408 a predetermined amount, and driving the second build material 414through the second input port 408 until the second build material 414extrudes through the extrusion port. As should be understood, thecontroller 420 may be configured to withdraw any of the build materials414 being used by the extruder 400. For example, the extruder 400 maywithdraw a first build material to drive a second build material or maywithdraw a second build material to drive a first build material.

As controlled by the controller 420, the build material 414 may bewithdrawn back through one of the input ports 408 by a predeterminedamount to facilitate the removal of one build material 414 from thechamber before driving another build material 414 into the chamber 412.This withdrawal may be a predetermined amount of build material, such asan amount sufficient to withdraw a transition region between twodifferent build materials out of the chamber or any other suitableamount. For example, the build material 414 may be withdrawn by theamount of build material 414 equal to one half the volume of the chamber412 or the entire volume of the chamber 412. In this manner, streakingor protracted, variable color mixing at the extrusion port 410 can bemitigated.

In another aspect, one build material may be fed into the chamber at thesame time that another is being withdrawn, e.g., to more quicklydisplace the first material from the chamber and back toward the firstinput port, similarly mitigating visual artifacts of a color switch.

FIG. 5 shows an extruder for use in a three-dimensional printer. Theextruder 500 may include one or more baffles 502 as described above. Insome implementations, baffles 502 can include passive, fixed structuresthat alter the flow of melted build material, thereby promoting mixing.In some implementations, the baffles 502 can include active structures(e.g., as described above) that further promote mixing. Where activestructures are used, they may operate under control of the controller518, or another controller, or autonomously such as by driving theactive structure(s) (such as a mixing impeller or the like) at a fixedrotational speed whenever extruding, or at a rotational speedproportional to an average of the two or more motors that drive thefilament.

FIG. 6 shows an extruder for use in a three-dimensional printer. Theextruder 600 may be constructed such that an in-feed axis 620 of one ormore build materials is skewed (i.e., not parallel) with respect to anextrusion axis 622. In some embodiments, the in-feed axes 622 of thevarious build materials are skewed with respect to each other, and/orwith respect to the extrusion axis 622. The skewed axes may promotecolor mixing by imparting mixing forces to rotate or swirl the severalbuild materials within the cavity prior to extrusion. While the optimumorientation of these axes will depend upon the shape of the chamber, theviscosity of the build materials, the presence or absence of additionalbaffles or the like within the chamber, and other geometric propertiesof the extruder and physical properties of the build materials, asuitable rotational path within the chamber may generally be establishedbe skewing the axes with an angular offset to a vertical axis of theextruder and a radial offset on opposing sides of a center axis of thechamber as illustrated for example in FIG. 3B. In this manner, lateralmixing forces may be created within a plane of the cavity.

FIG. 7 shows an extruder for use in a three-dimensional printer. Theextruder 700 may be constructed such that the chamber 712 is in fluidcommunication with one or more color sources 704. The color source 704may selectively, under control of the controller 720 and as describedmore fully herein, inject a color additive into the chamber 712. Thuswhile one or more motors 716 drive build material into the chamber 712,the color source 704 may also provide any suitable colorant to the buildmaterial. Such color additives may include inks, dyes, pigments, gels,photoreactive reagents, and the like that may alter a color of themelted build material(s) in the chamber 712. The color alteration may beimmediate, or may be delayed (e.g., the color alteration may occur dueto a slow or delayed chemical reaction, exposure to ultraviolet light,changes in temperature, and so forth). While the build materials mayalso be colored, and the color source 704 may supplement such coloredbuild materials to provide a greater range of possible output colors, itwill be appreciated that the color source 704 may also be usefullyemployed in a system that uses only a single-colored build material,such as a white or other neutral-colored build material. In thiscontext, the two different input feeds for identically-colored orsimilarly-colored materials may nonetheless be usefully employed tocreate a mixing action within the chamber as described above in order tomix additives from the color source 704 with the melted build material.For a single-feed device, a single axis angled to and radially offsetfrom the vertical axis of the extrusion port may also or instead beemployed to create mixing forces within the chamber.

FIG. 8 shows an extruder for use in a three-dimensional printer. Theextruder 800 may provide a feed path for build materials that is coupledto one or more color sources 804, such that color additives may beapplied to solid build material before build material 814 enters eitherthe melt zone 824 or the chamber 812. The color source 804 may, forexample, include paints or liquid dyes applied to an exterior of theunmelted build material. In some implementations, the color additivesmay be injected inside the melt zone 824, but before the chamber 812.The color sources 804 may be controlled by a controller 820, asdescribed more fully herein.

FIG. 9 shows an extruder for use in a three-dimensional printer. Asshown in FIG. 9, one or more color sources 904 may deliver coloradditives to build material as it exits the extruder at an extrusionport 910. The color source 904 may be mounted on an x-y-z positioningsystem that, under the control of a controller 920, may take on anypre-determined position and pose within the build volume of the threedimensional printer. Thus, the color source may be controlled to depositcolor agents on the surface of the object (or on material as it is beingdeposited on the surface) either during or after fabrication. In someimplementations, the color agents include paint, and the color sourcemay include a paint head 922 and a nozzle 924 configured to apply thepaint under control of the controller 920. In one aspect, this includesa nozzle 924 that is controllably directed toward a trailing point apredetermined distance behind a current position of the extruder alongan extrusion path.

FIG. 10 shows an extruder for use in a three-dimensional printer. Theextruder 1000 may include one or more input ports 1008 configured toaccept a filament of build material. A feedpath of the extruder 1000 maybe in fluid communication with one or more color sources 1004. The fluidcommunication can be implemented in any way as described above; e.g.,the color additives may be added to the build material before or afterthe build material enters the cavity 1012 where the build material isliquified. Alternatively or additionally, the color additives may bedeposited directly on the build material as it exits the extrusion port1010. In some implementations, the individual color sources 1004 areconfigured to inject color additives into a manifold 1026 or otherregion prior to entering the extruder 1000. This may help promote evenmixing of the various color additives prior to mixing with the buildmaterial. The manifold 1026 may include any number of active or passivemixing structures to combine color additives from the number of colorsources 1004.

The color additive(s) may be injected under control of a controller1018. The controller 1018 may also be in data communication with a colorsensor 1003, which may be a color camera or any other suitableinstrumentation with spectrographic capabilities. The color sensor 1003may be positioned to detect the color of the build material as it exitsthe extrusion port 1010. Thus, for a camera, the camera may be directedso that a field of view of the camera includes the extrusion port 1010and material exiting therefrom. This information can be used toadvantageously control the injection of color additives. For example, adeviation between a sensed color from the color sensor 1003 and anexpected color, e.g., a predetermined color determined based uponcontrolled dispensation from the color sources 1004, can be incorporatedinto a mathematical function or lookup table to correct or update thecontroller's instruction to the other motors, color sources, or othercomponents. A suitable mathematical function may be derived based upon adeviation between a sensed color and an expected color. For example, adeviation in color may be represented as a vector in a color space thatincludes, e.g., a multi-dimensional hue and a saturation. Suitablecorrective action may be determined to reduce or eliminate thisdeviation vector and converted into machine instructions for executionby a printer.

FIG. 11 is a flowchart for fabricating a colored object. The method 1100may begin by identifying a model for the object and/or fabricationinstructions for the object (step 1102). An object model may be anycomputer-readable file or files that collectively specify the structureand colors of the object. This may, for example include CAD files, STLfiles, and the like that provide three-dimensional descriptions of theobject. This may also include image files such as PNG files, JPEG files,IMG files, and the like, which may be texture mapped or otherwiseapplied to surfaces of three-dimensional models, e.g., in the CAD or STLfiles, to characterize color over the surface of the object.

Fabrication instructions corresponding to a model may be any collectionof instructions that, when carried out by a three dimensional printer,result in the fabrication of the object. For example, fabricationinstructions may include a series of instructions for moving to variousx,y,z coordinates, extruding build material, controlling temperature ofheating elements, etc. For example, gcode is one common format forproviding fabrication instructions to operate a three-dimensionalprinter, although any form of machine-executable instructions may alsoor instead be used, including instructions that directly encode hardwarefunctions such as stepper motor positions, or instructions that areinterpreted by other printer hardware to provide a specified result.

In step 1104, the color and material requirements for fabricating theobject may be identified. For example, in step 1104 it may be determinedthat a particular object requires a first amount of green buildmaterial, a second amount of yellow build material, a third amount ofcyan color additive, etc. The color and material requirements may beidentified in several ways. In some implementations, these requirementsmay be identified from a “virtual fabrication,” in which fabricationinstructions are processed in memory of a computer, while totals of thevarious materials are tracked. In some implementations, the requirementsmay be determined from the object model using standard geometriccomputations. In some implementations, the requirements may be containedin metadata of the object model, fabrication instructions, or a relatedfile.

In step 1106, the types, amounts, and colors of available buildmaterials may be identified. In some implementations, a user (e.g., anoperator of the three dimensional printer) may be directly queried as towhat build materials are available. In some implementations, a system(e.g., the controller of the three dimensional printer or a remotecomputer) automatically tracks material usage and updates materialinventory with respect to an initial inventory. In another aspect,predetermined values may be obtained from computer memory and used insubsequent processing. For example, a printer may have four feedpathsintended for specific colors of red, green, blue, and white buildmaterial. The intended color of each material may be stored andassociated with a particular drive motor or the like. When determiningcolors for a build, or when adjusting an output color, the controllermay reference the stored color value for corresponding calculations.Similarly, a user may manually enter a color value for each buildmaterial or color source.

In step 1108, a pre-fabrication check may be performed. Thepre-fabrication check may compare the color and material requirements tothe available build materials. A safety factor may be used to accountfor print errors, waste, or other process variations.

In decision 1110, it may be determined whether the model should bemodified, e.g., by comparing data on source materials with a model to befabricated. In some implementations, the user is alerted to a conditionin which the available build materials are not sufficient to meet thecolor and material requirements. For example, the available buildmaterials may include only yellow and blue filaments, while a modelcalls for certain portions to be red. Insofar as there is no way toobtain red from mixing yellow or blue in any proportion, the buildmaterials are inadequate for that particular model. As another example,the available build materials may include 50 grams of a certain shade ofyellow filament and 70 grams of a certain shade of blue filament, andthe fabrication instructions may require 120 grams of a shade of greenfilament that can be obtained from mixing the yellow and blue filamentin equal proportions. In this case, although there is enough material(irrespective of color) to fabricate the object, there is not enoughyellow filament to obtain the color specified in the model. As anotherexample, the object may require 120 grams each of yellow and bluefilament to be mixed in equal proportion, but there only 100 grams ofyellow and blue filament available. In this case, the desired color isobtainable, but there is not enough build material to fabricate theobject.

It is possible for the available build materials to be inadequate inother ways. If the available build materials are inadequate, a user maybe notified. In some implementations, the user is notified of theparticular missing resources. (E.g., the user may be informed that 10more grams of yellow filament are needed.) In some implementations, ifthe available build materials are inadequate, the model may beautomatically modified in various ways as described more fully below. Insome implementations, the model may be manually modified by the user. Inanother aspect, a number of recommendations may be made for changes toscaling, color or the like to conform the object to available buildmaterials, and a user may be prompted to select one or more suchrecommendations. In still other implementations, the process 1100 may bepaused or canceled so the user can obtain adequate build materials. Moregenerally, where a need for modification is identified, the model may bemanually, semi-automatically, or automatically revised according toavailable materials, and the method may return to step 1102 so thatanother pre-fabrication check can be performed.

If the model is not modified, a first component of the object isidentified (step 1110). In this context, a “component” is intended torefer to a contiguous length of same-color build material. The length ofmaterial or “component” need not be used to form a single structure, andmay be used to fabricate two or more physically disconnected structures.However, it is generally contemplated that this length of material wouldbe extruded or otherwise deposited as a specified color without anychanges to the color along its length.

In step 1112, the required build materials to produce the specifiedcolor are identified. For example, if a specified color is obtainablefrom a particular proportion of two or more available build materials,that proportion is identified. It may occur that there are multiplecombinations of build materials that yield the color specified by themodel. In this case, any suitable criterion for deciding whichcombination to use can be employed. Such criteria can include, forexample, minimizing a total cost of the build materials, minimizing afabrication time, a user-supplied preference for certain build materialsto be used over others, or some other criterion.

In step 1114, the component, e.g., single-color portion, of the modelmay be fabricated using the combination of build materials identified inthe previous step. At the completion of the component's fabrication, itis determined whether there are more components in the model (decision1118). If so, the next component is identified and steps 1112-1116 areperformed again. If there are no more components, the object has beenfabricated and process 1100 ends.

FIG. 12 is a flowchart for modifying an object model. The process 1200may be performed, for example, when a preliminary check (FIG. 11, step1108) reveals that there are insufficient build materials or colorsource materials to fabricate the object of the existing model.

In step 1202, a deficiency amongst the build materials is identified.For example, the deficiency may be that there is an insufficient amountof a particular build material (e.g., of a particular color). In anotherexample, the deficiency may be that a color specified by the modelcannot be obtained from the available colors of the build materials. Inanother example, the deficiency may be that there is an insufficientamount of build material, irrespective of color.

For a given deficiency, a suggested modification is presented (step1204). One type of modification may include altering a color in themodel (or portion thereof) such that the modified colors may be producedfrom the available build materials.

In one example, suppose the modeled object is composed entirely of ashade of green that results from mixing an available yellow filament andan available blue filament in equal proportions. Moreover, supposefabricating the object of the model involves 100 grams of filamenttotal, but only 40 grams of yellow filament and 60 grams of bluefilament is available. In this case, the green of the model can bemodified to a shade of blue-green; specifically, the shade that wouldresult if the available yellow and the available blue were mixed in a2:3 ratio.

In another example, suppose the modeled object includes some structuresthat are red, but the only available build materials are blue andyellow. In this case, a closest color obtainable from the buildmaterials may be identified. In this case, a user may be presented withoptions for alternative colors that can be fabricated from availablematerials. For example, a user may be presented with a color paletteshowing a convex hull of the available colors, and prompted to identifya point on the convex hull for use in fabricating the object or aportion of the object. The color palette may include an identifiershowing a location within the convex hull that minimizes the distancefrom the available colors to the color of the model. Other criteria maybe used when suggesting a color. For example, the suggested color may bea color that favors a particular build material based on, e.g.,availability, cost, predetermined user preference, and so forth. Inanother aspect, the user interaction may be omitted, and the method 1200may include selecting an available color closest to the intended color.

Another type of modification is to scale the object itself, so that itcan be fabricated with the original colors using the available buildmaterials. In the example above (in which the original model involves100 grams of green material, but only 40 grams of yellow and 60 grams ofblue are available), then scaling the object by 80% would reduce therequired amount of yellow to 40 grams, thus allowing the object to befabricated using the original colors.

In addition to or instead of these modifications, the user may makemanual modifications to the model, for example using the various designtools described herein, and may retest the modified model for errors ordeficiencies.

Combinations of these modifications are possible.

Once a modification eliminates a deficiency (step 1206) it is determinedwhether there are any remaining deficiencies (decision 1206). If thereare, the next deficiency may be identified and eliminated. If nodeficiencies remain, process 1200 concludes.

FIG. 13 is a flowchart for providing a design tool. The design tool mayinclude any software and corresponding user interface capable ofrendering or manipulating three-dimensional models of the type describedabove. The process 1300 may begin by identifying available buildmaterials for fabricating an object, as described above (step 1302). Instep 1304, a color palette may be identified from the available buildmaterials. The color palette may include various colors (or shadesthereof) that can be produced from the available build materials(including dyes or other additives from the various color sourcesdescribed above). In some implementations, the color palette may includethose points in color space falling in the interior (or on the boundary)of the convex hull of the available source colors, or sometwo-dimensional aspect of a multi-dimensional convex hull.

In step 1306 the color palette may be displayed to a user of the designtool as available colors to use in the model. In some implementations,the user may be limited when developing the model to only those colorsin the color palette. In some implementations, the user may be permittedto use colors outside the color palette, but will be warned that he isdoing so. At step 1308, a change in the model is identified (e.g.,received from the user). For example, the change can include changingthe color of a structure, adding a new structure, deleting an existingstructure, or the like.

The process 1300 may then return to step 1302, in which the inventory ofavailable build material is updated based on the change of step 1308.For example, if there are precisely 30 grams of a particular coloravailable and the user creates a new structure using all 30 grams, thenthe available build material inventory is updated to reflect that the 30grams is no longer available, and that color is removed from the colorpalette.

FIG. 14 is a flowchart of a process for switching build materials in anextruder.

As shown in step 1402, the method 1400 may begin by providing athree-dimensional printer having an extruder that includes a first inputport, a second input port, and an extrusion port that are all in fluidcommunication with a coupling chamber, such as any of thethree-dimensional printers described above. It will be understood thatwhile two input ports are described here, any number of input ports, andany corresponding number of colored build materials may be used.

As shown in step 1404 a first build material may be driven through thefirst input port into the chamber (as described above). The first buildmaterial may be of a certain color for use by the three-dimensionalprinter as described above. The first build material may be one of aplurality of materials such as a plastic, ABS, PLA, or PCL.

In step 1406, once the first input material is within the chamber thechamber may be heated to liquefy the first build material and the firstbuild material may be extruded through the extrusion port. In thismanner a three-dimensional printing process may be realized using thefirst build material for fabrication. At some point, e.g., according toan instruction in code for the printing process, metadata for a modelbeing fabricated (e.g., denoting a different surface color), or due to amanual user input or the like, the build material used for fabricationmay be changed. This may, for example, include changing to a differentcolor, or changing to a build material with different mechanicalproperties.

As shown in step 1408, the first build material may be withdrawn backthrough the first input port by a predetermined amount to facilitateintroduction of a second build material into the chamber. With buildmaterial fed into two different input ports, there may generally be somemixing at the interface between the materials. However, the materialstypically used in extrusion-based printing will not readily diffuse ordissolve into one another, so the region of mixing between the two—thematerial transition region—may form an identifiable volume within thechamber. By moving this transition region out of the chamber beforedriving a new build material into the chamber, the transition betweenthe two build materials may be more quickly and completely realized.Thus, the predetermined amount the first build material is withdrawn maybe an amount sufficient to displace the material transition regionwithin the chamber back toward the feedpath of the first build material,thus allowing a clean feedpath for a second build material to be driveninto the chamber. This general goal may similarly be achieved bydisplacing a significant portion of the chamber volume back toward thefeedpath of the build material that is being withdrawn, regardless ofthe size or location of the material transition region. Thus, the firstbuild material may be withdrawn by an amount of material equal to onehalf the volume of the chamber or the entire volume of the chamber, orany other suitable predetermined amount.

As shown in step 1410 a second build material may be driven through thesecond input port into the chamber (as described above). The secondbuild material may be of a different color than the first material. Thesecond build material may also or instead be of a different type having,e.g., different mechanical properties desirable for a portion of anobject being fabricated. For example, the first or second build materialmay be different types of plastic, such as ABS, PLA, or PCL. In oneaspect, the second build material may be driven after the first buildmaterial is withdrawn. In another aspect, the second material may bedriven concurrently with the withdrawal of the first build material, orsome combination of these.

As shown in step 1412, once the second input material is within thechamber, the chamber may be heated to liquefy the second build materialand the second build material may be extruded through the extrusionport. The chamber may also or instead be heated continuously throughoutthe switching process, and may where appropriate change temperature froma first temperature for the first build material to a second temperaturefor the second build material.

As shown in step 1412, the second build material may be extruded.Regardless of timing between driving of the two build materials andheating of the chamber, the switching process concludes when the secondmaterial is driven out of the extrusion port for use in athree-dimensional printing process. The process is generally reversible,and may be repeated in complementary fashion to switch from the secondbuild material back to the first build material (or to a third buildmaterial).

As shown in step 1414, the second build material may be withdrawn backinto the second input port by a predetermined amount, such as any of thepredetermined amounts discussed above with respect to the first buildmaterial.

As shown in step 1416, the first build material may be driven into thechamber and finally through the chamber and out the extrusion port. Thefirst build material may optionally be concurrently driven into thechamber as the second build material is withdrawn, as generallydiscussed above.

The methods or processes described above, and steps thereof, may berealized in hardware, software, or any combination of these suitable fora particular application. The hardware may include a general-purposecomputer and/or dedicated computing device. The processes may berealized in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors, or otherprogrammable device, along with internal and/or external memory. Theprocesses may also, or instead, be embodied in an application specificintegrated circuit, a programmable gate array, programmable array logic,or any other device or combination of devices that may be configured toprocess electronic signals. It will further be appreciated that one ormore of the processes may be realized as computer executable codecreated using a structured programming language such as C, an objectoriented programming language such as C++, or any other high-level orlow-level programming language (including assembly languages, hardwaredescription languages, and database programming languages andtechnologies) that may be stored, compiled or interpreted to run on oneof the above devices, as well as heterogeneous combinations ofprocessors, processor architectures, or combinations of differenthardware and software.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, means for performing thesteps associated with the processes described above may include any ofthe hardware and/or software described above. All such permutations andcombinations are intended to fall within the scope of the presentdisclosure.

It should further be appreciated that the methods above are provided byway of example. Absent an explicit indication to the contrary, thedisclosed steps may be modified, supplemented, omitted, and/orre-ordered without departing from the scope of this disclosure.

The method steps of the invention(s) described herein are intended toinclude any suitable method of causing such method steps to beperformed, consistent with the patentability of the following claims,unless a different meaning is expressly provided or otherwise clear fromthe context. So for example performing the step of X includes anysuitable method for causing another party such as a remote user or aremote processing resource (e.g., a server or cloud computer) to performthe step of X. Similarly, performing steps X, Y and Z may include anymethod of directing or controlling any combination of such otherindividuals or resources to perform steps X, Y and Z to obtain thebenefit of such steps.

While particular embodiments of the present invention have been shownand described, it will be apparent to those skilled in the art thatvarious changes and modifications in form and details may be madetherein without departing from the spirit and scope of this disclosureand are intended to form a part of the invention as defined by thefollowing claims, which are to be interpreted in the broadest senseallowable by law.

What is claimed is:
 1. A method comprising: providing athree-dimensional printer having an extruder with a first input port, asecond input port, an extrusion port, and a chamber coupling the firstinput port, the second input port, and the extrusion port in fluidcommunication; driving a first build material through the first inputport until the first build material extrudes through the extrusion port;withdrawing the first build material through the first input port apredetermined amount, wherein the predetermined amount is selected tomove a material transition region between the first build material and asecond build material out of the chamber but not enough to completelywithdraw the first build material from the extruder; and driving thesecond build material through the second input port until the secondbuild material extrudes through the extrusion port.
 2. The method ofclaim 1 further comprising heating the chamber to liquefy at least oneof the first build material and the second build material.
 3. The methodof claim 1 wherein the first build material is a different color thanthe second build material.
 4. The method of claim 1 wherein the firstbuild material is of a different type than the second build material. 5.The method of claim 1 wherein the first build material is a plastic. 6.The method of claim 1 wherein the first build material is one or more ofABS, PLA, and PCL.
 7. The method of claim 1 wherein the predeterminedamount includes an amount of the first build material displacing atleast one half the volume of the chamber.
 8. The method of claim 1wherein the predetermined amount includes an amount of the first buildmaterial displacing at least the volume of the chamber.
 9. The method ofclaim 1 further comprising withdrawing the first build materialconcurrently with driving the second build material.
 10. The method ofclaim 1 further comprising withdrawing the second build material throughthe second input port by a second predetermined amount and driving thefirst build material through the first input port until the first buildmaterial extrudes through the extrusion port.